﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using WebserviceDemo.Model;

namespace WebserviceDemo
{
    /// <summary>
    /// LoginWebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务，请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class LoginWebService : System.Web.Services.WebService
    {

        [WebMethod]
        public string Login1(string token)
        {
            return "登录成功";
        }

        [WebMethod]
        public ReturnBase Login2(string username, string password, string token)
        {
            return new ReturnBase() { Code = 300, Result = "录录功功", Data = null };
        }

        [WebMethod(EnableSession = true)]
        public ReturnBase Login3(ParamBase param)
        {
            //解析出参数
            //C# 4.0 之后有了动态类型dynamic。用这个东西配合Json.net可以实现不用定义实体类的json转dynamic类型对象。
            //string json = "{\"Id\":1,\"Name\":\"刘备\",\"Password\":\"22\"}";
            //此处模拟在不建实体类的情况下，反转将json返回回dynamic对象
            var DynamicObject = JsonConvert.DeserializeObject<dynamic>(param.ParamJson);
            int age = DynamicObject.Age;
            string name = DynamicObject.Name;  //刘备

            return new ReturnBase() { Code = 300, Result = "登陆成功", Data = null };
        }

        [WebMethod]
        public string GetToken(string username, string password)
        {
            //token一般保存在缓存中
            return "fjoisdkfjskfsjfdsfsdlfdlkjfslfsd";
        }
    }
}
